/**
 原生方法名常量
 */
const PRINT_CA = "PRINT_CA"  // 打印语句
const ALERT_SHOW_CA = "ALERT_SHOW_CA" // 弹出通用弹出框
const TOAST_SHOW_CA = "TOAST_SHOW_CA"  //弹出toast
const ADD_LISTENER = "ADD_LISTENER"  //添加回调函数



//回调动作名称
const C_AlertCancel = "C_AlertCancel"  //alert 取消动作
const C_AlertSure = "C_AlertSure"      //alert 确定动作

var mcallBack

/**
 初始化
*/
(function initSdk(){
     console.log("initSdk:");
     sdkManage(PRINT_CA,'初始化sdk成功')
     sdkManage(ADD_LISTENER,'appCallBack')
})()


/**
 原生回调js方法
 js 界面需要使用请调 调相应的动作方法，比如setAlertCancelCallback
 @param callResult js app回调 结果
 callResult={"callBackCode":1,content:,callbackActiveName:}
 callBackCode: 发起时候code
 callbackActiveName: 回调动作名称
 content: 返回内容
 
*/
function appCallBack(callResult){

    console.log("callBack:"+callResult);
    
    let callResultJson =  JSON.parse(callResult)
    
    sdkManage(PRINT_CA,callResultJson.callbackActiveName)
    
    if(callResultJson.callbackActiveName == C_AlertCancel ){
        alertCancelCallBack &&alertCancelCallBack(callResult)
     
    }else if(callResultJson.callbackActiveName = C_AlertSure){
        
        alertSureCallback && alertSureCallback(callResult)
    }
    
}



/**
 原生打印语句
 */
function print_ca(){
    sdkManage(PRINT_CA,"测试打印------")
}


/**
 sdk使用入口方法
 @params funcName android、ios端方法名
 @params paramsMap 参数格式 {code:200,body:content,message:"成功",callBackCode:1}
         callBackCode:为回调时区分的代码
         content为{}对象
 */
function sdkManage(funcName,paramsMap){
    if(isAndorid()){
         window.CAJSSDK[funcName](paramsMap)
    }else{
         window.webkit.messageHandlers[funcName].postMessage(paramsMap)
    }
}




/**
 alert取消回调
 @param callBack 回调方法
 */

var alertCancelCallBack
function setAlertCancelCallback(callBack){
  
    alertCancelCallBack = callBack
}


/**
 sure 取消回调
 @param callBack 回调方法
 */
var alertSureCallback
function setAalertSureCallback(callBack){
    alertSureCallback = callBack
}





function isAndorid(){
    var ret = false;
    var u = navigator.userAgent;
    if (u.indexOf("Android") > -1 || u.indexOf("Adr") > -1) {

        ret = true;
    }
    return ret;
}

function isIos(){
    var ret = false;
    var u = navigator.userAgent;
    //if (/ios|iphone|ipod|pad/i.test(u)) {
    if (u.indexOf("iPhone") > -1 || u.indexOf("iOS") > -1) {
        ret = true;
    }
    return ret;

}
